package com.ruoyi.finance.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 凭证列表对象 voucher
 *
 * @author ruoyi
 * @date 2025-02-27
 */
public class Voucher extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 凭证ID */
    private Long voucherId;

    /** 凭证字号 */
    @Excel(name = "凭证字号")
    private String voucherNo;

    /** 开票日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开票日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date voucherDate;

    /** 账期YYYYMM */
    @Excel(name = "账期YYYYMM")
    private String accountPeriod;

    /** 附单据数量 */
    @Excel(name = "附单据数量")
    private Long attachmentCount;

    /** 合计金额 */
    @Excel(name = "合计金额")
    private double totalAmount;

    /** 剩余可冲销金额 */
    @Excel(name = "剩余可冲销金额")
    private double remainingAmount;

    /** 审核人ID */
    @Excel(name = "审核人ID")
    private Long auditorId;

    /** 审核状态 */
    @Excel(name = "审核状态")
    private Integer auditStatus;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date auditTime;

    /** 作废状态 */
    @Excel(name = "作废状态")
    private Integer isVoid;

    /** 作废时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "作废时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date voidTime;

    /** 红冲时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "红冲时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reversalTime;

    /** 账套ID */
    @Excel(name = "账套ID")
    private Long accountId;

    /** 凭证字ID */
    @Excel(name = "凭证字ID")
    private Long wordId;

    /** 逻辑删除 */
    @Excel(name = "逻辑删除")
    private Integer isDeleted;

    /** 版本号 */
    @Excel(name = "版本号")
    private Long version;



    public void setVoucherId(Long voucherId)
    {
        this.voucherId = voucherId;
    }

    public Long getVoucherId()
    {
        return voucherId;
    }
    public void setVoucherNo(String voucherNo)
    {
        this.voucherNo = voucherNo;
    }

    public String getVoucherNo()
    {
        return voucherNo;
    }
    public void setVoucherDate(Date voucherDate)
    {
        this.voucherDate = voucherDate;
    }

    public Date getVoucherDate()
    {
        return voucherDate;
    }
    public void setAccountPeriod(String accountPeriod)
    {
        this.accountPeriod = accountPeriod;
    }

    public String getAccountPeriod()
    {
        return accountPeriod;
    }
    public void setAttachmentCount(Long attachmentCount)
    {
        this.attachmentCount = attachmentCount;
    }

    public Long getAttachmentCount()
    {
        return attachmentCount;
    }

    public double getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(double totalAmount) {
        this.totalAmount = totalAmount;
    }

    public double getRemainingAmount() {
        return remainingAmount;
    }

    public void setRemainingAmount(double remainingAmount) {
        this.remainingAmount = remainingAmount;
    }

    public void setAuditorId(Long auditorId)
    {
        this.auditorId = auditorId;
    }

    public Long getAuditorId()
    {
        return auditorId;
    }
    public void setAuditStatus(Integer auditStatus)
    {
        this.auditStatus = auditStatus;
    }

    public Integer getAuditStatus()
    {
        return auditStatus;
    }
    public void setAuditTime(Date auditTime)
    {
        this.auditTime = auditTime;
    }

    public Date getAuditTime()
    {
        return auditTime;
    }
    public void setIsVoid(Integer isVoid)
    {
        this.isVoid = isVoid;
    }

    public Integer getIsVoid()
    {
        return isVoid;
    }
    public void setVoidTime(Date voidTime)
    {
        this.voidTime = voidTime;
    }

    public Date getVoidTime()
    {
        return voidTime;
    }
    public void setReversalTime(Date reversalTime)
    {
        this.reversalTime = reversalTime;
    }

    public Date getReversalTime()
    {
        return reversalTime;
    }
    public void setAccountId(Long accountId)
    {
        this.accountId = accountId;
    }

    public Long getAccountId()
    {
        return accountId;
    }
    public void setWordId(Long wordId)
    {
        this.wordId = wordId;
    }

    public Long getWordId()
    {
        return wordId;
    }
    public void setIsDeleted(Integer isDeleted)
    {
        this.isDeleted = isDeleted;
    }

    public Integer getIsDeleted()
    {
        return isDeleted;
    }
    public void setVersion(Long version)
    {
        this.version = version;
    }

    public Long getVersion()
    {
        return version;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("voucherId", getVoucherId())
            .append("voucherNo", getVoucherNo())
            .append("voucherDate", getVoucherDate())
            .append("accountPeriod", getAccountPeriod())
            .append("attachmentCount", getAttachmentCount())
            .append("totalAmount", getTotalAmount())
            .append("remainingAmount", getRemainingAmount())
            .append("auditorId", getAuditorId())
            .append("auditStatus", getAuditStatus())
            .append("auditTime", getAuditTime())
            .append("isVoid", getIsVoid())
            .append("voidTime", getVoidTime())
            .append("reversalTime", getReversalTime())
            .append("accountId", getAccountId())
            .append("wordId", getWordId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("isDeleted", getIsDeleted())
            .append("version", getVersion())
            .toString();
    }
}
